/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.pima.gestrest.controller;

import com.pima.gestrest.business.PrixEJB;
import com.pima.gestrest.model.Prix;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.ejb.EJB;
import java.util.Iterator;
import java.util.List;
import javax.faces.bean.SessionScoped;
import javax.faces.component.html.HtmlDataTable;
import javax.faces.model.ListDataModel;
import javax.faces.model.SelectItem;

/**
 *
 * @author Pierre-Louis Conte
 */

@ManagedBean
@SessionScoped
public class PrixController {

    @EJB
    private PrixEJB prixEJB;
    private HtmlDataTable dataTable;
    private Prix prix = new Prix();
    private ListDataModel prixList;
    private ArrayList<SelectItem> itemList;

    private void updateItemList() {
        itemList = new ArrayList<SelectItem>(prixEJB.getItems());
    }

    private void updatePrixList() {
        prixList = new ListDataModel(prixEJB.findAll());
    }

    // ======================================
    // =          Getters & Setters         =
    // ======================================
    public HtmlDataTable getDataTable() {
        return dataTable;
    }

    public void setDataTable(HtmlDataTable dataTable) {
        this.dataTable = dataTable;
    }

    public Prix getPrix() {
        return prix;
    }

    public void setPrix(Prix prix) {
        this.prix = prix;
    }

    public ListDataModel getPrixList() {
        updatePrixList();
        return prixList;
    }

    public void setPrixList(ListDataModel prixList) {
        this.prixList = prixList;
    }

    // ======================================
    // =           Public Methods           =
    // ======================================

    public String doNew() {
        prix = new Prix();
        return "../secured.newPrix.faces";
    }

    public String doCreate() {
        prixEJB.create(prix);
        return "../resources/listPrixs.faces";
    }

    public String doDelete() {
        List<Prix> prixs = (List<Prix>)prixList.getWrappedData();
        prixEJB.delete(onlySelected(prixs));
        return "../resources/listPrixs.faces";
    }

    private List<Prix> onlySelected(List<Prix> list) {
        for (Iterator<Prix> it = list.iterator(); it.hasNext(); ) {
            if (!(it.next().isSelected()))
                it.remove();
        }
        return list;
    }

    public String viewDetail () {
        prix = (Prix)prixList.getRowData();
        return "../resources/viewPrix.faces";
    }

    public String doEdit() {
        //prix = (Prix)prixList.getRowData(); // Voici comment on trouve le livre sélectionné
        return "../secured/editPrix.faces";
    }

    public String doSave() {
        prixEJB.update(prix);
        return "../resources/listPrixs.faces";
    }

    public List<SelectItem> getItemList () {
        updateItemList();
        return itemList;
    }

    public void setItemList (ArrayList<SelectItem> list) {
        this.itemList = list;
    }

}
